// 用户路由模块
const express = require("express");
// 创建路由对象
const router = express.Router();

// 导入用户路由处理函数模块
const userHandler = require("../router_handler/user");

// 导入验证表单数据的中间件
const expressJoi = require("@escook/express-joi");

// 导入需要验证的规则对象
const { reg_login_schema } = require("../schema/user");

// 注册新用户
// 检测表单数据是否合法;
// 检测用户名是否被占用;
// 对密码进行加密处理;
// 插入新用户;
// 3. 在注册新用户的路由中，声明局部中间件，对当前请求中携带的数据进行验证
// 3.1 数据验证通过后，会把这次请求流转给后面的路由处理函数
// 3.2 数据验证失败后，终止后续代码的执行，并抛出一个全局的 Error 错误，进入全局错误级别中间件中进行处理
router.post("/reguser", expressJoi(reg_login_schema), userHandler.regUser);

// 登录
// 检测表单数据是否合法
// 根据用户名查询用户的数据
// 判断用户输入的密码是否正确
// 生成 JWT 的 Token 字符串
router.post("/login",expressJoi(reg_login_schema), userHandler.login);

module.exports = router;
